home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / ghost / gs403src_gs.lha / gs4.03 / bcwin.mak < prev    next >
Makefile  |  1996-09-17  |  10KB  |  327 lines

  1. #    Copyright (C) 1989, 1995, 1996 Aladdin Enterprises.  All rights reserved.
  2. # This file is part of Aladdin Ghostscript.
  3. # Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND.  No author
  4. # or distributor accepts any responsibility for the consequences of using it,
  5. # or for whether it serves any particular purpose or works at all, unless he
  6. # or she says so in writing.  Refer to the Aladdin Ghostscript Free Public
  7. # License (the "License") for full details.
  8. # Every copy of Aladdin Ghostscript must include a copy of the License,
  9. # normally in a plain ASCII text file named PUBLIC.  The License grants you
  10. # the right to copy, modify and redistribute Aladdin Ghostscript, but only
  11. # under certain conditions described in the License.  Among other things, the
  12. # License requires that the copyright notice and this notice be preserved on
  13. # all copies.
  14.  
  15. # makefile for MS-Windows 3.n/Borland C++ 3.0 or 3.1 platform.
  16.  
  17. # ------------------------------- Options ------------------------------- #
  18.  
  19. ###### This section is the only part of the file you should need to edit.
  20.  
  21. # ------ Generic options ------ #
  22.  
  23. # Define the directory that will hold documentation at runtime.
  24.  
  25. GS_DOCDIR=c:/gs
  26.  
  27. # Define the default directory/ies for the runtime
  28. # initialization and font files.  Separate multiple directories with \;.
  29. # Use / to indicate directories, not a single \.
  30.  
  31. GS_LIB_DEFAULT=.;c:/gs\;c:/gs/fonts
  32.  
  33. # Define the name of the interpreter initialization file.
  34. # (There is no reason to change this.)
  35.  
  36. GS_INIT=gs_init.ps
  37.  
  38. # Choose generic configuration options.
  39.  
  40. # Setting DEBUG=1 includes debugging features (-Z switch) in the code.
  41. # Code runs substantially slower even if no debugging switches are set,
  42. # and also takes about another 25K of memory.
  43.  
  44. DEBUG=0
  45.  
  46. # Setting TDEBUG=1 includes symbol table information for the Borland debugger.
  47. # No execution time or space penalty, just larger .OBJ and .EXE files
  48. # and slower linking.
  49.  
  50. TDEBUG=0
  51.  
  52. # Setting NOPRIVATE=1 makes private (static) procedures and variables public,
  53. # so they are visible to the debugger and profiler.
  54. # No execution time or space penalty, just larger .OBJ and .EXE files.
  55.  
  56. NOPRIVATE=0
  57.  
  58. # Define the name of the executable file.
  59.  
  60. GS=gswin16
  61. GSDLL=gsdll16
  62.  
  63. # Define the directory where the IJG JPEG library sources are stored,
  64. # and the major version of the library that is stored there.
  65. # You may need to change this if the IJG library version changes.
  66. # See jpeg.mak for more information.
  67.  
  68. JSRCDIR=jpeg-6a
  69. JVERSION=6
  70.  
  71. # Define the directory where the PNG library sources are stored,
  72. # and the version of the library that is stored there.
  73. # You may need to change this if the libpng version changes.
  74. # See libpng.mak for more information.
  75.  
  76. PSRCDIR=libpng
  77. PVERSION=89
  78.  
  79. # Define the directory where the zlib sources are stored.
  80. # See zlib.mak for more information.
  81.  
  82. ZSRCDIR=zlib
  83.  
  84. # Define the configuration ID.  Read gs.mak carefully before changing this.
  85.  
  86. CONFIG=
  87.  
  88. # Define any other compilation flags.  Including -DA4 makes A4 paper size
  89. # the default for most, but not, printer drivers.
  90.  
  91. CFLAGS=
  92.  
  93. # ------ Platform-specific options ------ #
  94.  
  95. # If you don't have an assembler, set USE_ASM=0.  Otherwise, set USE_ASM=1,
  96. # and set ASM to the name of the assembler you are using.  This can be
  97. # a full path name if you want.  Normally it will be masm or tasm.
  98.  
  99. USE_ASM=1
  100. ASM=tasm
  101.  
  102. # Define the drive, directory, and compiler name for the Turbo C files.
  103. # COMP is the compiler name (tcc for Turbo C++, bcc for Borland C++).
  104. # COMPAUX is the compiler name for DOS utilities (same as COMP).
  105. # RCOMP is the resource compiler name (brcc32 for Borland C++)
  106. # COMPDIR contains the compiler and linker (normally \bc\bin).
  107. # INCDIR contains the include files (normally \bc\include).
  108. # LIBDIR contains the library files (normally \bc\lib).
  109. # Note that these prefixes are always followed by a \,
  110. #   so if you want to use the current directory, use an explicit '.'.
  111.  
  112. COMP=bcc
  113. COMPAUX=$(COMP)
  114. RCOMP=brcc
  115. COMPBASE=c:\bc45
  116. COMPDIR=$(COMPBASE)\bin
  117. INCDIR=$(COMPBASE)\include
  118. LIBDIR=$(COMPBASE)\lib
  119.  
  120. # Define the Windows directory.
  121.  
  122. WINDIR=c:\windows
  123.  
  124. # Windows 3.n requires a 286 CPU or higher.
  125.  
  126. CPU_TYPE=286
  127.  
  128. # Don't rely on FPU for Windows: Options are -1 (optimize for no FPU) or
  129. # 0 (optimize for FPU present, but do not require a FPU).
  130.  
  131. FPU_TYPE=0
  132.  
  133. # ---------------------------- End of options ---------------------------- #
  134.  
  135. # Swapping `make' out of memory makes linking much faster.
  136.  
  137. .swap
  138.  
  139. # Define the platform name.
  140.  
  141. PLATFORM=bcwin_
  142.  
  143. # Define the name of the makefile -- used in dependencies.
  144.  
  145. MAKEFILE=bcwin.mak
  146.  
  147. # Define the ANSI-to-K&R dependency.  Turbo C accepts ANSI syntax,
  148. # but we need to preconstruct ccf.tr to get around the limit on
  149. # the maximum length of a command line.
  150.  
  151. AK=ccf.tr
  152.  
  153. # Define the compilation flags for an 80286.
  154. # This is void because we handle -2 and -3 in ccf.tr (see below).
  155.  
  156. F286=
  157.  
  158. # Figure out which version of Borland C++ we are running.
  159. # In the MAKE program that comes with Borland C++ 2.0, __MAKE__ is 0x300;
  160. # in the MAKE that comes with Borland C++ 3.0 and 3.1, it is 0x360.
  161. # We care because 3.0 has additional optimization features.
  162. # There are also some places below where we distinguish BC++ 3.1 from 3.0
  163. #   by testing whether $(INCDIR)\win30.h exists (true in 3.1, false in 3.0).
  164.  
  165. EXIST_BC3_1=exist $(INCDIR)\win30.h
  166.  
  167. # Figure out which version of Windows we are running, 3.0 or 3.1.
  168. # I *think* 3.0 doesn't have the 256COLOR.BMP file.
  169.  
  170. WINDOWS_3_1=exist $(WINDIR)\256color.bmp
  171.  
  172. # Define compiler switches appropriate to this compiler.
  173.  
  174. !if $(__MAKE__) >= 0x360
  175. CO=-Obe -Z
  176. !else
  177. CO=-O
  178. !endif
  179. CAOPT=-a
  180. WINCOMP=0
  181.  
  182. !include "tccommon.mak"
  183.  
  184. # Define the compilation flags.
  185.  
  186. !if $(NOPRIVATE)
  187. CP=-DNOPRIVATE
  188. !else
  189. CP=
  190. !endif
  191.  
  192. !if $(DEBUG) | $(TDEBUG)
  193. CS=-N
  194. !else
  195. CS=
  196. !endif
  197.  
  198. !if $(DEBUG)
  199. CD=-DDEBUG
  200. !else
  201. CD=
  202. !endif
  203.  
  204. !if $(TDEBUG)
  205. CT=-v
  206. LCT=/v
  207. !else
  208. CT=-y
  209. LCT=/m /l /s
  210. !endif
  211.  
  212. GENOPT=$(CP) $(CS) $(CD) $(CT)
  213.  
  214. CCFLAGS0=$(GENOPT) $(PLATOPT) $(FPFLAGS) $(CFLAGS) $(XCFLAGS)
  215. CCFLAGS=$(CCFLAGS0) -m$(MM)
  216. CC=$(COMPDIR)\$(COMP) -m$(MM) -zEGS_FAR_DATA @ccf.tr
  217. # We want a Windows DLL with only selected functions exported:
  218. WX=-WDE
  219. CCC=$(CC) $(WX) $(CO) -c
  220. CCD=$(CC) $(WX) -O -c
  221. # Should be -mh !!!
  222. CCCF=$(COMPDIR)\$(COMP) -ml -zEGS_FAR_DATA @ccf.tr $(WX) -c
  223. CCINT=$(CC) $(WX) -c
  224. CCLEAF=$(CCC)
  225.  
  226. .c.obj:
  227.     $(CCC) { $<}
  228.  
  229. # ------ Devices and features ------ #
  230.  
  231. # Choose the language feature(s) to include.  See gs.mak for details.
  232. # Since we only support running in enhanced mode, which provides
  233. # virtual memory, we include a fair number of drivers, but we still can't
  234. # exceed 64K of static data.
  235.  
  236. FEATURE_DEVS=level2.dev pdf.dev diskfont.dev ttfont.dev
  237.  
  238. # Choose whether to compile the .ps initialization files into the executable.
  239. # See gs.mak for details.
  240.  
  241. COMPILE_INITS=0
  242.  
  243. # Choose the device(s) to include.  See devs.mak for details.
  244.  
  245. DEVICE_DEVS=mswindll.dev mswinpr2.dev
  246. DEVICE_DEVS3=deskjet.dev djet500.dev laserjet.dev ljetplus.dev ljet2p.dev ljet3.dev ljet4.dev
  247. # Including DEVS4 overflows the default data segment.
  248. #DEVICE_DEVS4=cdeskjet.dev cdjcolor.dev cdjmono.dev cdj550.dev pj.dev pjxl.dev pjxl300.dev
  249. # Including DEVS6 overflows the default data segment.
  250. #DEVICE_DEVS6=epson.dev eps9high.dev ibmpro.dev bj10e.dev bj200.dev bjc600.dev bjc800.dev
  251. DEVICE_DEVS8=pcxmono.dev pcxgray.dev pcx16.dev pcx256.dev pcx24b.dev
  252. DEVICE_DEVS10=tiffcrle.dev tiffg3.dev tiffg32d.dev tiffg4.dev tifflzw.dev tiffpack.dev
  253. DEVICE_DEVS11=bmpmono.dev bmp16.dev bmp256.dev bmp16m.dev tiff12nc.dev tiff24nc.dev
  254. !include "tctail.mak"
  255. !include "int.mak"
  256.  
  257. # Build the compiler response file depending on the selected options.
  258.  
  259. ccf.tr: $(MAKEFILE) makefile
  260.     echo -2 -a -d -r -G -N -X -I$(INCDIR) $(CCFLAGS0) -DCHECK_INTERRUPTS >ccf.tr
  261. !if $(CPU_TYPE) > 286
  262.     echo -3 -a -d -r -G -N -X -I$(INCDIR) $(CCFLAGS0) -DCHECK_INTERRUPTS >_temp_
  263.     if $(EXIST_BC3_1) copy _temp_ ccf.tr
  264. !endif
  265.  
  266. # -------------------------------- Library -------------------------------- #
  267.  
  268. # The Turbo/Borland C(++), Microsoft Windows platform
  269.  
  270. # Using a file device resource to get the console streams re-initialized
  271. # is bad architecture (an upward reference to ziodev),
  272. # but it will have to do for the moment.
  273. bcwin__=gp_mswin.$(OBJ) gp_msdos.$(OBJ) gp_nofb.$(OBJ) gp_dosfs.$(OBJ) gp_dosfe.$(OBJ)
  274. bcwin_.dev: $(bcwin__)
  275.     $(SETMOD) bcwin_ $(bcwin__)
  276.     $(ADDMOD) bcwin_ -iodev wstdio
  277.  
  278. gp_mswin.$(OBJ): gp_mswin.c $(AK) gp_mswin.h \
  279.  $(ctype__h) $(dos__h) $(malloc__h) $(memory__h) $(stdio__h) $(string__h) $(windows__h) \
  280.  $(gx_h) $(gp_h) $(gpcheck_h) $(gserrors_h) $(gsexit_h) $(gxiodev_h) $(stream_h)
  281.  
  282. # ----------------------------- Main program ------------------------------ #
  283.  
  284. BEGINFILES=gs*.ico ccf.tr $(GS).res $(GSDLL).res $(GSDLL).dll
  285. CCBEGIN=$(CCC) *.c
  286.  
  287. # Get around the fact that the DOS shell has a rather small limit on
  288. # the length of a command line.  (sigh)
  289.  
  290. LIBCTR=libc$(MM).tr
  291.  
  292. $(LIBCTR): $(MAKEFILE) makefile $(ECHOGS_XE)
  293.     echogs -w $(LIBCTR) $(LIBDIR)\import+
  294.     echogs -a $(LIBCTR) $(LIBDIR)\mathw$(MM) $(LIBDIR)\cw$(MM)
  295.  
  296. # Interpreter main program
  297.  
  298. !include "dwcommon.mak"
  299.  
  300. GS_ALL=$(INT_ALL) $(INTASM)\
  301.   $(LIB_ALL) $(LIBCTR) $(ld_tr) lib.tr $(GSDLL).def $(ICONS)
  302.  
  303. $(GSDLL).dll: $(GS_ALL) $(DEVS_ALL) gsdll.$(OBJ) $(GSDLL).rc
  304.     tlink $(LCT) /Twd $(LIBDIR)\c0d$(MM) gsdll @$(ld_tr) $(INTASM) ,$(GSDLL).dll,$(GSDLL),@lib.tr @$(LIBCTR),$(GSDLL).def
  305.     $(COMPDIR)\rc -K -i$(INCDIR) $(GSDLL).rc $(GSDLL).dll
  306.  
  307. # The small EXE loader
  308.  
  309. .cpp.obj:
  310.     $(COMPDIR)\$(COMP) -c -I$(INCDIR) -WE -m$(MM) $(CT) {$< }
  311.  
  312. $(GS_XE): $(GSDLL).dll $(DWOBJ) $(GS).res dwmain16.def
  313.     $(COMPDIR)\tlink /Twe $(LCT) @&&!
  314. $(LIBDIR)\c0w$(MM) +
  315. $(DWOBJ) +
  316. ,$(GS_XE),$(GS), +
  317. $(LIBDIR)\import +
  318. $(LIBDIR)\cw$(MM), +
  319. dwmain16.def, +
  320. $(GS).res
  321. !
  322.     $(COMPDIR)\rlink -t $(GS).res $(GS).exe
  323.  
  324.